Digital watermarking is a process for modifying physical or electronic media to embed a hidden machine-readable code into the media. The media may be modified such that the embedded code is imperceptible or nearly imperceptible to the user, yet may be detected through an automated detection process. Most commonly, digital watermarking is applied to media signals such as images, audio signals, and video signals. However, it may also be applied to other types of media objects, including documents (e.g., through line, word or character shifting), software, multi-dimensional graphics models, and surface textures of objects.
Digital watermarking systems typically have two primary components: an encoder that embeds the watermark in a host media signal, and a decoder that detects and reads the embedded watermark from a signal suspected of containing a watermark (a suspect signal). The encoder embeds a watermark by subtly altering the host media signal. The reading component analyzes a suspect signal to detect whether a watermark is present. In applications where the watermark encodes information, the reader extracts this information from the detected watermark.
Several particular watermarking techniques have been developed. The reader is presumed to be familiar with the literature in this field. Particular techniques for embedding and detecting imperceptible watermarks in media signals are detailed in the assignee's U.S. Pat. Nos. 6,122,403 and 6,614,914, which are hereby incorporated by reference.
There are a number of uses of digital watermarking where it is beneficial to implement at least some portion of the embedding or reading process in hardware and firmware. Some examples include the use of an embedder or reader in cameras, cell phones, portable media players, office equipment (e.g., printers, scanners, fax machines, copiers, etc.). The complexity and memory requirements of digital watermark encoders/decoders present a number of design challenges in implementing them in hardware.
Presenting further design constraints, certain hardware applications of digital watermarking make only a small portion of a media signal available at one time for encoding/decoding operations. For example, the streaming flow of image data in office equipment hardware only makes small sections of an image available at a time (e.g., a group of scan lines of an image, sometimes referred to as a band).
This disclosure describes methods and associated hardware for implementing digital watermarking functions. A digital watermark detector comprises a memory buffer for receiving an incoming stream of data. The detector includes a registration module for determining registration of embedded data in blocks of the incoming stream of data, and logic for re-using the registration for subsequent blocks of the incoming stream of data to detect machine readable signals.
Another digital watermark detector comprises a message reader for extracting message estimates from blocks of media signal data and a decoder for combining the extracted message estimates and decoding a message from the combined message elements.
Another digital watermark detector comprises a memory buffer and pipelined watermark processor segments. The segments each perform a different watermark detector operation. These segments concurrently operate on different data segments of the block of data in a processing pipeline.
Another method uses registration and message decoding estimates for some blocks in a signal to limit digital watermark processing in other blocks. These estimates can limit the range of geometric registration processing, avoid redundant computation, and/or provide a more accurate detection by accumulating decoded information across several blocks.
In another aspect of the invention, a digital watermark detector comprises a memory buffer for a block of data and pipelined watermark processor segments. The segments each perform a different watermark detector operation. These segments concurrently operate on different data segments of the block of data in a processing pipeline. One embodiment employs pipelined processors for setting up data for subsequent detecting stages, such as pipelined color conversion, re-sampling, pre-filtering and frequency domain transforms. Alternative embodiments pipeline data transformations, correlation operations (e.g., matched filter operations) etc. Data flows through the processing pipeline until it reaches a critical point. At stages before the critical point, data may be dropped as not likely to include digital watermark data. This pruning of data helps reduce un-needed processing and/or false positives of watermark detection.
Further features will become apparent with reference to the following detailed description and accompanying drawings.